"""
可变类型: 存储空间中的数据可以修改,并且内存地址不变:  代码中的特点: 对它进行增删改操作时,不需要接收返回值
不可变类型: 存储空间中的数据不能被修改,   代码中的特点: 本尊不变,必须接收新的数据

变量和变量之间的赋值,不是值的传递,而是内存地址的传递
所以在使用不可变类型进行值传递时,然后修改了赋值后的,赋值前的也会发生改变

函数的默认参数不要使用可变类型
"""
###################################
lst = [1, 3]
print(id(lst), lst)
lst.append(9)
print(id(lst), lst)

###################################
s = "hello"
print(id(s), s)
s2 = s.replace('ll', 'ww')
print(id(s), s)
print(id(s2), s2)

###################################
lst = ['a', 'b']
lst2 = lst
print(id(lst), lst)
print(id(lst2), lst2)
lst2.append('c')
print(id(lst), lst)
print(id(lst2), lst2)
###################################

"""数字缓存池"""

a, b = -2, -2
print(id(a), id(b))
c, d = 555555555555555555, 555555555555555555
print(c is d, id(c), id(d))

"""字符缓存池"""
s1 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
s2 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'

print(id(s1), id(s2))

###################################
lst = [10]


def f(a):
    a.append(20)


f(lst)
print(lst)
